package com.mycompany.crm.service;

import com.mycompany.crm.query.CustomerQuery;
import com.mycompany.crm.vo.Customer;

import java.util.Map;

/**
 * @author jy
 * @version 1.0
 * @date 2022/3/2 16:30
 */
public interface CustomerService {

    /**
     * 多条件分页查询客户
     * @param customerQuery
     * @return
     */
    Map<String,Object> queryCustomerByParams(CustomerQuery customerQuery);

    /**
     * 添加客户
     * @param customer
     */
    void addCustomer(Customer customer);

    /**
     * 通过id查询客户记录
     * @param id
     * @return
     */
    Customer selectByPrimaryKey(Integer id);

    /**
     * 修改客户
     * @param customer
     */
    void updateCustomer(Customer customer);

    /**
     * 删除客户
     * @param id
     */
    void deleteCustomer(Integer id);

    /**
     * 更新客户的流失状态
     */
    void updateCustomerState();

    /**
     * 客户贡献分析
     * @param customerQuery
     * @return
     */
    Map<String, Object> queryCustomerContributionByParams(CustomerQuery customerQuery);

    /**
     * 查询客户构成 （折线图）
     * @return
     */
    Map<String, Object> countCustomerMake();

    /**
     * 查询客户构成 （饼状图数据处理）
     * @return
     */
    Map<String, Object> countCustomerMake02();

    /**
     * 查询客户服务 （柱状图）
     * @return
     */
    Map<String, Object> countCustomerServe01();

    /**
     * 查询客户构成 （饼状图数据处理）
     * @return
     */
    Map<String, Object> countCustomerServe02();
}
